package com.jk.vehicle.mini.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.jk.vehicle.mini.entity.MileageRecord;
import com.jk.vehicle.core.service.Service;
import com.jk.vehicle.mini.vo.RecordMinDateVO;
import com.jk.vehicle.mini.vo.StatisticsVO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * This is Description for MileageRecordService
 *
 * @author Administrator
 * @date 2021/02/08
 */
public interface MileageRecordService extends Service<MileageRecord> {
    /**
    * 根据查询条件查询单表数据
    * @param paramMap 查询条件
    * @return 查询结果
    */
    List<MileageRecord> queryByParams(Map<String, Object> paramMap);

    /**
     * 根据日期统计的里程
     * @param startDay 统计总里程的开始日期
     * @param endDay 统计总里程的结束日期
     * @param bicycleId 车辆ID
     * @return 里程数
     */
    StatisticsVO queryMileageByDay(String startDay, String endDay, Long bicycleId, String dsName);

    /**
     * 查询里程表中所有的车辆id信息
     * @return 结果
     */
    List<Long> queryAllBicycleIds(String dsName);

    /**
     * 查询车辆总的里程数
     * @param bicycleId 车辆ID
     * @return 结果
     */
    BigDecimal findTotalMileageOfBicycle(Long bicycleId, String dsName);

    /**
     * 查询车辆行驶记录最早时间节点
     * @return 结果
     */
    List<RecordMinDateVO> queryRecordMinDate();
}
